home *** CD-ROM | disk | FTP | other *** search
Makefile | 1991-11-03 | 4.0 KB | 138 lines |
- ## -*- text -*- ####################################################
- # #
- # Makefile for readline and history libraries. #
- # #
- ####################################################################
-
- # Here is a rule for making .o files from .c files that doesn't force
- # the type of the machine (like -sun3) into the flags.
- .c.o:
- $(CC) -c $(CFLAGS) $(LOCAL_INCLUDES) \
- $(READLINE_DEFINES) $(CPPFLAGS) $*.c
-
- # Destination installation directory. The libraries are copied to DESTDIR
- # when you do a `make install', and the header files to INCDIR/readline/*.h.
- DESTDIR = /usr/local/lib
- INCDIR = /usr/local/include
-
- # Define TYPES as -DVOID_SIGHANDLER if your operating system uses
- # a return type of "void" for signal handlers.
- # TYPES = -DVOID_SIGHANDLER
-
- # Define USG as -DUSG if you are using a System V operating system.
- #USG = -DUSG
-
- # HP-UX compilation requires the BSD library.
- #LOCAL_LIBS = -lBSD
-
- # Xenix compilation requires -ldir -lx
- #LOCAL_LIBS = -ldir -lx
-
- # Comment out "-DVI_MODE" if you don't think that anyone will ever desire
- # the vi line editing mode and features. Make sure to comment out the
- # definition of VI if you remove the -DVI_MODE.
- READLINE_DEFINES = $(TYPES) -DVI_MODE
-
- DEBUG_FLAGS = -g
- LDFLAGS = $(DEBUG_FLAGS)
- CFLAGS = $(DEBUG_FLAGS) $(USG) -I.
-
- # A good alternative is gcc -traditional.
- #CC = gcc -traditional
- CC = cc
- RANLIB = /usr/bin/ranlib
- AR = ar
- RM = rm
- CP = cp
-
- LOCAL_INCLUDES = -I../
-
- XMALLOC_DIR = ../malloc/
- XMALLOC_C = $(XMALLOC_DIR)xmalloc.c
- TILDE_DIR = ../glob/
- TILDE_C = $(TILDE_DIR)tilde.c
-
- CSOURCES = readline.c history.c funmap.c keymaps.c vi_mode.c \
- emacs_keymap.c vi_keymap.c $(XMALLOC_C) $(TILDE_C)
-
- HSOURCES = readline.h chardefs.h history.h keymaps.h
- SOURCES = $(CSOURCES) $(HSOURCES)
-
- OBJECTS = readline.o vi_mode.o history.o funmap.o keymaps.o xmalloc.o tilde.o
-
- DOCSOURCE = doc/rlman.texinfo doc/rltech.texinfo doc/rluser.texinfo \
- doc/hist.texinfo doc/hsuser.texinfo doc/hstech.texinfo
- DOCOBJECT = doc/readline.dvi doc/history.dvi
- DOCSUPPORT = doc/Makefile doc/texinfo.tex
- DOCUMENTATION = $(DOCSOURCE) $(DOCOBJECT) $(DOCSUPPORT)
-
- SUPPORT = COPYING Makefile $(DOCUMENTATION) ChangeLog examples
-
- THINGS_TO_TAR = $(SOURCES) $(SUPPORT)
-
- ##########################################################################
-
- all: libreadline.a
-
- libreadline.a: $(OBJECTS)
- $(RM) -f $@
- $(AR) clq $@ $(OBJECTS)
- -if [ -f "$(RANLIB)" ]; then $(RANLIB) libreadline.a; fi
-
- readline: readline.h chardefs.h $(OBJECTS)
- $(CC) $(CFLAGS) $(CPPFLAGS) $(READLINE_DEFINES) \
- $(LOCAL_INCLUDES) -DTEST -o readline readline.c vi_mode.o funmap.o \
- $(TILDE_O) $(XMALLOC_O) keymaps.o history.o -L. -ltermcap
-
- # These next two rules are designed to ensure that the object files
- # are left in the current directory.
- #
- tilde.o: $(TILDE_C)
- rm -f tilde.o
- $(CC) $(CFLAGS) $(CPPFLAGS) -c $(TILDE_C)
- @-cp tilde.o $(TILDE_DIR)
- @-cp $(TILDE_DIR)tilde.o tilde.o
-
- xmalloc.o: $(XMALLOC_C)
- rm -f xmalloc.o
- $(CC) $(CFLAGS) $(CPPFLAGS) -c $(XMALLOC_C)
- @-cp xmalloc.o $(XMALLOC_DIR)
- @-cp $(XMALLOC_DIR)xmalloc.o xmalloc.o
-
- readline.o: readline.c readline.h chardefs.h keymaps.h history.h
- history.o: history.c history.h
- vi_mode.o: vi_mode.c
- funmap.o: funmap.c readline.h
- keymaps.o: keymaps.c emacs_keymap.c vi_keymap.c keymaps.h chardefs.h
-
- documentation: force
- (cd doc; make)
- force:
-
- readline.tar: $(THINGS_TO_TAR)
- tar -cf readline.tar $(THINGS_TO_TAR)
-
- readline.tar.Z: readline.tar
- compress -f readline.tar
-
- install: $(DESTDIR)/libreadline.a includes
-
- # The rule for 'includes' is written funny so that the if statement
- # always returns TRUE unless there really was an error installing the
- # include files.
- includes:
- if [ -r $(INCDIR)/readline ]; then \
- :; \
- else \
- mkdir $(INCDIR)/readline && chmod a+r $(INCDIR)/readline; \
- fi
- $(CP) readline.h keymaps.h chardefs.h $(INCDIR)/readline/
- clean:
- rm -f $(OBJECTS) *.a
- (cd doc; make clean)
-
- $(DESTDIR)/libreadline.a: libreadline.a
- -mv $(DESTDIR)/libreadline.a $(DESTDIR)/libreadline.old
- cp libreadline.a $(DESTDIR)/libreadline.a
- if [ -f "$(RANLIB)" ]; then $(RANLIB) -t $(DESTDIR)/libreadline.a; fi
-